package net.tuis.ubench;
import java.util.Arrays;
import java.util.Random;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.IntStream;
@SuppressWarnings("javadoc")
public class RandomSorter {
public static void main(String[] args) {
Random random = new Random();
final int[] data = IntStream.generate(random::nextInt).limit(10000).toArray();
final int[] sorted = Arrays.stream(data).sorted().toArray();
Predicate<int[]> validate = v -> Arrays.equals(v, sorted);
Supplier<int[]> stream = () -> Arrays.stream(data).sorted().toArray();
Supplier<int[]> trad = () -> {
int[] copy = Arrays.copyOf(data, data.length);
Arrays.sort(copy);
return copy;
};
new UBench("Sort Algorithms")
.addTask("Functional", stream, validate)
.addTask("Traditional", trad, validate)
.press(10000).report("With Warmup");
}
}